%% main.tex --- файл-обертка для диплома

\documentclass[russian,utf8,simple,floatsection]{eskdtext} 

\include{defs}  % вставляем содержимое служебных инструкций из defs.tex

\ESKDcolumnII{Заключение}

\begin{document}
\section*{Заключение}
\addcontentsline{toc}{section}{Заключение}
В данной работе разработанно  разрабатывается программное обеспечение автоматизации
рабочего места в библиотеке ВУЗа.

Данный программный продукт полностью удовлетворяет требованиям,
предъявленным к проектируемой системе и описанным в техническом
задании на разработку продукта.

В результате разработки программного обеспечения, решены следующие
задачи:
\begin{itemize}
\item Обоснованна актуальность темы. 
\item Проведен анализ существующих систем.
\item Разработана модульная структура ПО.
\item Составлена диаграмма классов.
\item Разработан пользовательский интерфейс.
\item Разработана диаграмма базы данных. 
\item Проведен расчет показателей экономической эффективности.
\item Выполнена программная реализация продукта.
\end{itemize}

\clearpage
\section*{Список литературы}
\addcontentsline{toc}{section}{Список литературы}
1.Методические указания к выполнению квалификационной работы для
студентов специальности 220400 – Программное обеспечение
вычислительной техники и автоматизированных систем / Составители:
Константинов И.С., Полунин А.И., Титаренко С.П., рецензент: Подлесный
В. Н., 2005. – 50 с.

2.Информатика и информационные технологии. Учебник /
Н. Д. Угринович. – 2-е изд. – М.: БИНОМ. Лаборатория знаний, 2005. –
511с.: ил. 

3.Системы поддержки принятия решений: основные понятия и вопросы
применения / Синюк В.Г., Котельников А.П. - учебное пособие. –
Белгород: Изд-во БелГТАСМ, 1998. – 78с.

4.Технология разработки программного обеспечения: Методические
указания. / Румбешт В.В. - Белгород: Изд-во БелГТАСМ, 2000. - 42 с.

5.Базы данных. Проектирование, реализация и сопровождение. Теория и
практика. / Т. Коннолли, К. Бегг. 3-е издание.: Пер. с англ. – М.:
Издательский дом «Вильямс», 2003. – 1440 с.: ил. – Парал. тит. англ.

6. Принятие решений. Метод анализа иерархий / Т. Саати – Москва «Радио
и связь», 1993. – 278с.

7. MySQL.RU .:. Одобрено лучшими российскими программистами /
http://www.mysql.ru.

\clearpage
\section*{Приложение}
\addcontentsline{toc}{section}{Приложение}
\begin{lstlisting}[language=python]
from django.shortcuts import render_to_response

from biblio.library.models import *

def index(request):
    return render_to_response("index.html")

def subjects(request):
    subject_list=Subject.objects.all()
    return render_to_response("subjects.html",locals())

def subject_by_name(request,id):
    vars={}

    subjects=Subject.objects.get(id=id)
    vars['name']=subjects.name

    methods=Methods.objects.filter(subject=id)
    vars['methods']=methods

    vars['eliter_list']=ELiter.objects.filter(subject__id=id)

    vars['lab_list']=Lab.objects.filter(subject__id=id)

    vars['cp_list']=CourseProject.objects.filter(subject__id=id)

    cw_list=CourseWork.objects.filter(subject__id=id)
    if len(cw_list)!=0:
        vars['cw_list']=cw_list

    lit_list=LiterList.objects.filter(subject__id=id)
    vars['lit_list']=lit_list
    return render_to_response("about_subject.html",vars)

def methods(request):
    methods_list=Methods.objects.all()
    return render_to_response("methods.html",locals())

def methods_by_name(request,id):
    methods=Methods.objects.get(id=id)
    name=methods.name
    subjects=methods.subject.all()
    content=methods.content
    return render_to_response("about_methods.html",locals())

def eliter_by_name(request,id):
    eliter=ELiter.objects.get(id=id)
    name=eliter.name
    subjects=eliter.subject.all()
    content=eliter.content
    return render_to_response("about_eliter.html",locals())

def lab_by_name(request,id):
    lab=Lab.objects.get(id=id)
    number=lab.number
    text=lab.text
    theme=lab.theme
    subject=lab.subject.name
    return render_to_response("about_lab.html",locals())

def cp_by_name(request,id):
    cp=CourseProject.objects.get(id=id)
    number=cp.number
    text=cp.text
    theme=cp.theme
    subject=cp.subject.name
    return render_to_response("about_cp.html",locals())

def cw_by_name(request,id):
    cw=CourseWork.objects.get(id=id)
    number=cw.number
    text=cw.text
    theme=cw.theme
    subject=cw.subject.name
    return render_to_response("about_cw.html",locals())
\end{lstlisting}

\begin{lstlisting}[language=python]
from django.conf.urls.defaults import *

import biblio.views

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
#                       (r'^admin/', include(admin.site.urls)),

urlpatterns = patterns('',
                       (r'^admin/', include(admin.site.urls)),
                       (r"^$",biblio.views.index),
                       (r"^subjects/$",biblio.views.subjects),
                       (r"^subjects/(\d+)$",biblio.views.subject_by_name),
                       (r"^methods/$",biblio.views.methods),
                       (r"^methods/(\d+)$",biblio.views.methods_by_name),
                       (r"^eliter/(\d+)$",biblio.views.eliter_by_name),
                       (r"^lab/(\d+)$",biblio.views.lab_by_name),
                       (r"^cp/(\d+)$",biblio.views.cp_by_name),
                       (r"^cw/(\d+)$",biblio.views.cw_by_name),
                       )
\end{lstlisting}

\begin{lstlisting}[language=python]
\end{lstlisting}

\begin{lstlisting}[language=python]
"""
This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test".

Replace these with more appropriate tests for your application.
"""

from django.test import TestCase

class SimpleTest(TestCase):
    def test_basic_addition(self):
        """
        Tests that 1 + 1 always equals 2.
        """
        self.failUnlessEqual(1 + 1, 2)

__test__ = {"doctest": """
Another way to test that 1 + 1 is equal to 2.

>>> 1 + 1 == 2
True
"""}

\end{lstlisting}

\begin{lstlisting}[language=python]
# Create your views here.
\end{lstlisting}

\begin{lstlisting}[language=python]
from biblio.library.models import *
from django.contrib import admin

admin.site.register(Subject)
admin.site.register(ELiter)
admin.site.register(Methods)
admin.site.register(Lab)
admin.site.register(CourseProject)
admin.site.register(CourseWork)
admin.site.register(LiterList)
\end{lstlisting}

\begin{lstlisting}[language=python]
\end{lstlisting}

\begin{lstlisting}[language=python]
# -*- coding: utf-8 -*-

from django.db import models

import biblio.settings

class Subject(models.Model):
    name=models.CharField(max_length=255)
    def __unicode__(self):
        return self.name

class ELiter(models.Model):
    name=models.CharField(max_length=255)
    content=models.TextField() 
    subject=models.ManyToManyField(Subject)
    
    def __unicode__(self):
        return self.name

class Methods(models.Model):
    name=models.CharField(max_length=255)
    content=models.TextField() 
    subject=models.ManyToManyField(Subject)
    
    def __unicode__(self):
        return self.name

semesters=[(i,str(i)) for i in range(6*2)]

class Lab(models.Model):
    number=models.IntegerField()
    theme=models.CharField(max_length=255)
    text=models.TextField()
    subject=models.ForeignKey(Subject)
    semester=models.IntegerField(choices=semesters)
    def __unicode__(self):
        return str(self.number)+" - "+self.theme

class CourseProject(models.Model):
    number=models.IntegerField()
    theme=models.CharField(max_length=255)
    text=models.TextField()
    subject=models.ForeignKey(Subject)
    semester=models.IntegerField(choices=semesters)
    def __unicode__(self):
        return str(self.number)+self.theme

class CourseWork(models.Model):
    number=models.IntegerField()
    theme=models.CharField(max_length=255)
    text=models.TextField()
    subject=models.ForeignKey(Subject)
    semester=models.IntegerField(choices=semesters)
    def __unicode__(self):
        return str(self.number)+self.theme

class LiterList(models.Model):
    name=models.CharField(max_length=255)
    subject=models.ForeignKey(Subject)

    def __unicode__(self):
        return self.name
\end{lstlisting}

\begin{lstlisting}[language=python]
#!/usr/bin/env python
from django.core.management import execute_manager
try:
    import settings # Assumed to be in the same directory.
except ImportError:
    import sys
    sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__)
    sys.exit(1)

if __name__ == "__main__":
    execute_manager(settings)
\end{lstlisting}

\begin{lstlisting}[language=python]
# -*- coding: utf-8 -*-
# Django settings for biblio project.
import os
DEBUG = True
TEMPLATE_DEBUG = DEBUG

ADMINS = (
    # ('Your Name', 'your_email@domain.com'),
)

MANAGERS = ADMINS

DATABASE_ENGINE = 'sqlite3'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'biblio.db'           # Or path to database file if using sqlite3.
DATABASE_USER = ''             # Not used with sqlite3.
DATABASE_PASSWORD = ''         # Not used with sqlite3.
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'America/Chicago'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'ru-rus'

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True

# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"
MEDIA_ROOT = ''

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
MEDIA_URL = ''

# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a
# trailing slash.
# Examples: "http://foo.com/media/", "/media/".
ADMIN_MEDIA_PREFIX = '/media/'

# Make this unique, and don't share it with anybody.
SECRET_KEY = '%@0l(3q5s)z1n(tr06j7vc#r(yucb9o5&ml56$7c=s5nkdt_pf'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source',
    'django.template.loaders.app_directories.load_template_source',
#     'django.template.loaders.eggs.load_template_source',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)

ROOT_URLCONF = 'biblio.urls'

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'biblio.library'
)

# MAIN_SETTINGS
path_to_save_files="/home/lsv/tmp" 
\end{lstlisting}
\begin{verbatim}
{% extends "base.html" %}
{% extends "base.html" %}

{% block title %}
{{ name }}
{% endblock %}

{% block info %}
    {% for item in methods_list %}
    <li>
      <a href="/methods/{{ item.id }}">{{ item.name }}</a>
    </li>
    {% endfor %}
{% endblock %}
{% extends "base.html" %}
{% block title %}
{{ subject }}. Лабораторная работа {{ number }}
{% endblock %}

{% block info %}
    <p><b>Тема:</b> "{{ theme }}"</p>
    <br>
    {{ text }}
{% endblock %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <link rel="stylesheet" href="style.css" />
    <title>
      {% block title %}
      Информация для пользователя
      {% endblock %}</title>
</head>

<body>
    <div id="sidebar">
        {% block menu %}
        <ul>
            <li><a href="/">Home</a></li>
            <li><a href="/methods">Методички</a></li>
	    <li><a href="/subjects">Предметы</a></li>
        </ul>
        {% endblock %}
    </div>

    <div id="content">
        {% block info %}{% endblock %}
    </div>
</body>
</html>
{% extends "base.html" %}
{% block title %}
{{ subject }}. Курсовой проект {{ number }}
{% endblock %}

{% block info %}
    <p><b>Тема:</b> "{{ theme }}"</p>
    <br>
    {{ text }}
{% endblock %}
{% extends "base.html" %}

{% block title %}
{{ name }}
{% endblock %}

{% block info %}
    <p>{{ name }}</p>
    <p><b>Методички:</b></p>
    {% for item in methods %}
    <li>
      <a href="/methods/{{ item.id }}">{{ item.name }}</a>
    </li>
    {% empty %}
       <li>Не предусмотренно</li>
    {% endfor %}


    <p><b> Электронные учебники:</b></p>
    {% for item in eliter_list %}
       <li>
        <a href="/eliter/{{ item.id }}">{{ item.name }}</a>
       </li>
    {% empty %}
       <li>Не предусмотренно</li>
    {% endfor %}

    
     <p><b> Лабораторные работы:</b></p>
     {% for item in lab_list %}
       <li>
        <a href="/lab/{{ item.id }}">семестр {{ item.semester }} - {{ item.number }} - {{ item.theme }}</a>
       </li>
     {% empty %}
       <li>Не предусмотренно</li>
     {% endfor %}

    <p><b> Курсовые проекты:</b></p>
     {% for item in cp_list %}
       <li>
        <a href="/cp/{{ item.id }}">семестр {{ item.semester }} - {{ item.number }} - {{ item.theme }}</a>
       </li>
     {% empty %}
       <li>Не предусмотренно</li>
     {% endfor %}

    <p><b> Курсовые работы:</b></p>
     {% for item in cw_list %}
       <li>
        <a href="/cw/{{ item.id }}">семестр {{ item.semester }} - {{ item.number }} - {{ item.theme }}</a>
       </li>
     {% empty %}
       <li>Не предусмотренно</li>
     {% endfor %}

     <p><b>Список литературы:</b></p>
     {% for item in lit_list %}
     <li>
       {{ item.name }}
     </li>
     {% endfor %}
{% endblock %}
{% extends "base.html" %}
{% block title %}
{{ name }}
{% endblock %}

{% block info %}
    <p><b>Заголовок:</b> "{{ name }}"</p>
    <p>Используется в предметах:</p>
    {% for item in subjects %}
    <li>
      <a href="/subjects/{{ item.id }}">{{ item.name }}</a>
    </li>
    {% endfor %}
    <p>Содержание</p>
    {{ content }}
{% endblock %}
{% extends "base.html" %}
{% block title %}
{{ name }}
{% endblock %}

{% block info %}
    <p><b>Заголовок:</b> "{{ name }}"</p>
    <p>Используется в предметах:</p>
    {% for item in subjects %}
    <li>
      <a href="/subjects/{{ item.id }}">{{ item.name }}</a>
    </li>
    {% endfor %}
    <p>Содержание</p>
    {{ content }}
{% endblock %}
{% extends "base.html" %}
{% block title %}
{{ subject }}. Курсовая работа {{ number }}
{% endblock %}

{% block info %}
    <p><b>Тема:</b> "{{ theme }}"</p>
    <br>
    {{ text }}
{% endblock %}
{% extends "base.html" %}

{% block title %}
Список предметов
{% endblock %}

{% block info %}
{% for item in subject_list %}
    <li>
      <a href="/subjects/{{ item.id }}">{{ item.name }}</a>
    </li>
{% endfor %}
{% endblock %}


\end{verbatim}
\end{document}

